package com.speedcar.base.exception;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 统一异常信息枚举类
 * 一组通用的异常类，各业务线可自己组装自己的异常，一般-【业务名+code】
 *
 * @author zhangfuzeng
 */
@AllArgsConstructor
@Getter
public enum ErrorCode {

    /**
     * 异常信息
     */
    SIGN_ERROR("9001", "error.check.sign", "签名验证失败"),
    RATE_LIMIT_ERROR("9002", "error.more.request", "请求过于频繁，请稍后再试"),
    PARAM_ERROR("9003", "error.check.param", "请求参数有误，请重试"),

    RUNTIME_ERROR("9997", "error.unknown", "未知异常"),
    COMMON_ERROR("9998", "error.customize", "自定义异常"),
    /**
     * 未能捕捉到的异常
     */
    OTHER_ERROR("9999", "error.unknown", "未知异常");

    /**
     * 抛出的错误码
     */
    private final String code;

    /**
     * 国际化错误码
     */
    private final String i18nCode;

    /**
     * 异常描述
     */
    private final String desc;

}
